package com.hb.trade.client.project;

import com.hb.core.pojo.parent.PageResult;
import com.hb.core.pojo.project.calibration.dto.BidWinResultDTO;
import com.hb.core.pojo.project.calibration.dto.BidWinResultSupplyDTO;
import com.hb.core.pojo.project.calibration.dto.PortalBidWinDTO;
import org.fzzn.core.model.msg.Message;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * describe:
 * 中标结果公示相关
 * @author zhongdl
 * @date 2021/12/18
 */
@FeignClient("hb-project")
public interface BidWinResultClient {


    /**
     *
     * @Description: 根据中标结果id查询中标结果页面的详情
     * @Author: zhongdl
     * @Date:2021/12/18 13:41
     * @param bidWinResult:
     * @return: {@link Message< BidWinResultDTO> }
     **/
    @PostMapping("/bidWinResult/bidWinResultInfoDetail")
    Message<BidWinResultDTO> bidWinResultInfoDetail(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description: 保存中标结果信息
     * @Author: zhongdl
     * @Date:2021/12/18 15:05
     * @param bidWinResult:
     * @return: {@link Message< Boolean> }
     **/
    @PostMapping("/bidWinResult/saveBidWinResult")
    Message<BidWinResultDTO> saveBidWinResult(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description: 锁定中标结果公告和
     * @Author: zhongdl
     * @Date:2021/12/18 16:03
     * @param bidWinResult:
     * @return: {@link Message< Boolean> }
     **/
    @PostMapping("/bidWinResult/lockingParentBidWinResult")
    Message<Boolean> lockingParentBidWinResult(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description: 发布中标结果公告
     * @Author: zhongdl
     * @Date:2021/12/18 17:06
     * @param bidWinResult:
     * @return: {@link org.fzzn.core.model.msg.Message<java.lang.Boolean> }
     **/
    @PostMapping("/bidWinResult/releaseBidWinResult")
    Message<Boolean> releaseBidWinResult(@RequestBody BidWinResultDTO bidWinResult);

    /**
     *
     * @Description: 根据项目id分页查询中标公示列表
     * @Author: zhongdl
     * @Date:2021/12/20 9:24
     * @param bidWinResult:
     * @return: {@link Message< PageResult< BidWinResultDTO>> }
     **/
    @PostMapping("/bidWinResult/pageBidWinResult")
    Message<PageResult<BidWinResultDTO>> pageBidWinResult(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description:根据标段id分页查询中标公示列表
     * @Author: zhongdl
     * @Date:2022/1/5 16:29
     * @param bidWinResult:
     * @return: {@link Message< PageResult< BidWinResultDTO>> }
     **/
    @PostMapping("/bidWinResult/pageBidWinResultBySectionId")
    Message<PageResult<BidWinResultDTO>> pageBidWinResultBySectionId(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description: 根据公告id更新公告内容
     * @Author: zhongdl
     * @Date:2021/12/20 11:07
     * @param bidWinResult:
     * @return: {@link Message< Boolean> }
     **/
    @PostMapping("/bidWinResult/updateNoticeContent")
    Message<BidWinResultDTO> updateNoticeContent(@RequestBody BidWinResultDTO bidWinResult);
    /**
     *
     * @Description: 新建中标结果公告时返回项目信息
     * @Author: zhongdl
     * @Date:2022/1/5 9:50
     * @param bidWinResult:
     * @return: {@link Message< BidWinResultDTO> }
     **/
    @PostMapping("/bidWinResult/initWinResultInfo")
    Message<BidWinResultDTO> initWinResultInfo(@RequestBody BidWinResultDTO bidWinResult);

    /**
     *
     * @Description: 查询未新建中标结果公告并且标段状态未已结束的的标段列表
     * @Author: zhongdl
     * @Date:2022/1/5 13:53
     * @param bidWinResult:
     * @return: {@link Message< List< BidWinResultDTO>> }
     **/
    @PostMapping("/bidWinResult/pageNotSelectBidSection")
    Message<PageResult<BidWinResultDTO>> pageNotSelectBidSection(@RequestBody BidWinResultDTO bidWinResult);

    /**
     *
     * @Description: 查询中标结果包含的标段信息
     * @Author: zhongdl
     * @Date:2022/1/5 17:06
     * @param successfulNoticeSupply:
     * @return: {@link Message< PageResult<  BidWinResultSupplyDTO >> }
     **/
    @PostMapping("/bidWinResult/pageIncludeBidSection")
    Message<PageResult<BidWinResultSupplyDTO>> pageIncludeBidSection(@RequestBody BidWinResultSupplyDTO successfulNoticeSupply);

    /**
     *门户网站查询对应的结果公示
     * @param portalBidWinDTO
     * @return
     * @Author: LJS
     * @Date:2022-2-18 11:34:39
     */
    @PostMapping("/bidWinResult/pageBidWinPortal")
    Message<PageResult<PortalBidWinDTO>> pageBidWinPortal(@RequestBody PortalBidWinDTO portalBidWinDTO);

    /**
     *门户网站查询对应的公告详情
     * @param portalBidWinDTO
     * @return
     * @Author: LJS
     * @Date:2022-2-18 11:34:39
     */
    @PostMapping("/bidWinResult/detailBidWinPortal")
    Message<PortalBidWinDTO> detailBidWinPortal(@RequestBody PortalBidWinDTO portalBidWinDTO);
    /**
     *
     * @Description:需要推送的中标结果公示
     * @Author: zhongdl
     * @Date:2022/2/24 14:38
     * @param bidWinResultDTO:
     * @return: {@link Message< List< BidWinResultDTO>> }
     **/
    @PostMapping("/bidWinResult/listPushBidWinResultSupply")
    Message<List<BidWinResultDTO>> listPushBidWinResultSupply(@RequestBody BidWinResultDTO bidWinResultDTO);


    /**
     * 查询当前企业是否中标
     * @author tian
     * @date 2022-3-1 9:25
     * @param bidWinResult
     * @return org.fzzn.core.model.msg.Message<java.lang.Boolean>
     */
    @PostMapping("/bidWinResult/findWinResultSupplyBySectionIdAndOrgId")
    Message<Boolean> findWinResultSupplyBySectionIdAndOrgId(@RequestBody BidWinResultDTO bidWinResult);
}
